package com.zkzx.common.truck.model;

import com.zkzx.common.truck.vo.HeaderLicenseVO;
import com.zkzx.common.truck.vo.TailLicenseVO;
import com.zkzx.common.truck.vo.TruckSourceVO;
import com.zkzx.common.truck.vo.TypeVO;
import com.zkzx.common.vo.StatusVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author young Email:yanghui@zkraising.com
 * @description
 * @company 北京中科智兴物联科技有限公司 @版权所有
 * @since 2021年05月10日 18时13分
 */
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "TruckVO", description = "车辆信息")
public class TruckVO implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @ApiModelProperty(value = "id", example = "10086")
    private Integer id;

    /**
     * 企业id
     */
    @ApiModelProperty(value = "企业id", example = "setaqy2103221350")
    private String cid;

    /**
     * 三方id
     */
    @ApiModelProperty(value = "三方id", name = "three_id", example = "63001")
    private String threeId;

    /**
     * 车牌号
     */
    @ApiModelProperty(value = "车牌号", name = "header_license_vo", example = "京A·88888")
    private HeaderLicenseVO headerLicenseVO;

    /**
     * 车牌号
     */
    @ApiModelProperty(value = "车牌号", name = "tail_license_vo", example = "京A·88888")
    private TailLicenseVO tailLicenseVO;

    /**
     * 所属人
     */
    @ApiModelProperty(value = "所属人",  example = "王思聪")
    private String owner;

    /**
     * 发动机号
     */
    @ApiModelProperty(value = "发动机号",  example = "234546456")
    private String code;

    /**
     * 车牌颜色
     */
    @ApiModelProperty(value = "车牌颜色",  example = "YELLOW")
    private String licensecolor;

    /**
     * 车辆类型
     */
    @ApiModelProperty(value = "车辆类型",  example = "重型半挂牵引车")
    private TypeVO typeVO;

    /**
     * 能源类型
     */
    @ApiModelProperty(value = "来源", name = "energy_type", example = "汽油")
    private String energyType;


    /**
     * 车长
     */
    @ApiModelProperty(value = "车长", name = "volume", example = "13")
    private String volume;

    /**
     * 总质量
     */
    @ApiModelProperty(value = "总质量", name = "total_weight", example = "130")
    private String totalWeight;

    /**
     * 整备质量
     */
    @ApiModelProperty(value = "整备质量", name = "curb_weight", example = "130")
    private String curbWeight;

    /**
     * 核定载质量
     */
    @ApiModelProperty(value = "核定载质量", name = "verification_weight", example = "130")
    private String verificationWeight;

    /**
     * 准牵引总质量
     */
    @ApiModelProperty(value = "准牵引总质量", name = "tow_weight", example = "130")
    private String towWeight;

    /**
     * 车辆识别码
     */
    @ApiModelProperty(value = "车辆识别码", name = "identify", example = "1303dfsd423423")
    private String identify;

    /**
     * 车辆使用性质
     */
    @ApiModelProperty(value = "车辆使用性质", name = "nature", example = "FAMILY_CAR")
    private String nature;

    /**
     * 来源
     */
    @ApiModelProperty(value = "来源对象", name = "truck_source_vo")
    private TruckSourceVO truckSourceVO;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态对象", name = "status_vo")
    private StatusVO statusVO;

    /**
     * 关联企业个数
     */
    @ApiModelProperty(value = "关联企业个数", name = "relation_number", example = "2")
    private String relationNumber;


    /**
     * 录入时间
     */
    @ApiModelProperty(value = "录入时间", name = "create_time", example = "2021-04-29 18:44:21")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", name = "last_modified_time", example = "2021-03-15 17:36:21")
    private String lastModifiedTime;

    /**
     * 录入企业
     */
    @ApiModelProperty(value = "录入企业", name = "create_company", example = "1515")
    private Integer createCompany;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人", name = "create_user", example = "1515")
    private Integer createUser;

    /**
     * 最后更新人
     */
    @ApiModelProperty(value = "最后更新人", name = "last_modified_user", example = "1515")
    private Integer lastModifiedUser;

    /**
     * 车辆证件信息
     */
    @ApiModelProperty(value = "车辆证件信息", name = "truck_certificates_vo", example = "1515")
    private TruckCertificatesVO truckCertificatesVO;

    /**
     * 中间表信息关联企业信息
     */
    @ApiModelProperty(value = " 关联企业信息", name = "company_trucks")
    private List<CompanyTruckVO> companyTrucks;
}
